﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//using Ucb.Workshop.WinApp.View.GestionProducto.IViews;
//using Ucb.Workshop.WinApp.View.GestionProducto.View;

using Ucb.Workshop.Model;
using Ucb.Workshop.WinApp.View.GestionProducto.IViews;
//using Ucb.Workshop.Presenters;

namespace Ucb.Workshop.WinApp.View.GestionProducto.Presenters
{
    public class RegistroProductoPresenter
    {
        private IProductoView view;

        public IProductoView View { get { return view; } }

        public RegistroProductoPresenter(IProductoView view)
        {
            this.view = view;
        }

        public void OnRegistroProducto()
        {
            if (HayValoresValidos())
            {
                Producto elProducto = ObtenerProductoDeLaVista();
                InsertarProductoABaseDeDatos(elProducto);
            }
            else
            {
                throw new Exception("Se requiere que todos los campos tengan valores...");
            }
        }

        private void InsertarProductoABaseDeDatos(Producto elProducto)
        {
            elProducto.Insertar();
        }

        private Producto ObtenerProductoDeLaVista()
        {
            Producto elProducto = new Producto();
            elProducto.Codigo = View.Codigo;
            elProducto.Descripcion = View.Descripcion;
            elProducto.Unidad = View.Unidad;
            elProducto.Categoria = View.Categoria;

            return elProducto;
        }

        private bool HayValoresValidos()
        { 
            bool hayValoresValidos = true;

            if (String.IsNullOrEmpty(View.Categoria) || String.IsNullOrEmpty(View.Codigo) ||
                String.IsNullOrEmpty(View.Descripcion) || String.IsNullOrEmpty(View.Unidad))
            {
                hayValoresValidos = false;
            }

            return hayValoresValidos;
        }
    }
}
